#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include "pr_exit.c"
// int zero = 0;
// int main()
// {
//     pid_t pid;
//     int status;
//     printf("...");
//     if ((pid = fork()) == 0)
//     {
//         exit(0); //正常退出
//     }

//     if ((pid = fork()) == 0)
//     {
//         abort(); //信号退出
//     }

//     if ((pid == fork()) == 0)
//     {
//         status /= zero; //除0异常
//         exit(0);
//     }

//     while ((pid = wait(&status)) > 0)
//     {
//         pr_exit(status, pid);
//     }
//     printf("waiting all.\n");
//     exit(0);
// }

int zero = 0;

int main()
{
    pid_t pid;
    int status;
    if ((pid = fork()) == 0)
        exit(0);
    if ((pid = fork()) == 0)
        abort();
    if ((pid = fork()) == 0)
    {
        status /= zero;
        exit(0);
    }
    while ((pid = wait(&status)) > 0)
    {
        pr_exit(status, pid);
    }
    printf("waiting all.\n");
    exit(0);
}